/*
    BibleNotebook - A bible reader software
    Copyright (C) 2014  Williams Fernando Lopez

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
 */

package com.simplebible.dictionary;

import com.simplebible.dictionary.objects.SimpleIndex;
import com.simplebible.dictionary.objects.DictDefinition;
import java.io.IOException;
import java.util.List;

/**
 *
 * @author Williams Lopez
 */
public interface IDictionary {

    public static final String root = "dicts";

    public  void close() throws IOException;

    public DictDefinition get(String word) throws Exception;

    public void put(DictDefinition def) throws Exception;

    public boolean remove(String word) throws Exception;

    public String getDictionaryId();

    public void setDictionaryInfo(String name,String url, String copiryght,String description,String idioma) throws IOException;

    public String getDictionaryCopyright();

    public String getDictionaryDescription();

    public String getDictionaryName();

    public String getDictionaryUrl();

    public String getIdioma();

    public int size();

    public List<String> listSimilarWords(String word) throws Exception;

    public List<String> getAllWords() throws IOException;

    public boolean removeOfSystem() throws Exception;

    public SimpleIndex getIndex() throws Exception;

    

}
